In serial data transmission, because data is serially transmitted on a bit by bit basis, while the minimum value unit of the data that we usually need to transmit is character, if the transmission is done by directly using natural binary code of the character without inserting a special start and a special stop signals, then a receiving end cannot parse the received data. For example, if one character is 8 bit binary number, when a transmitting end transmits data of 1, 2, and 3, a data stream transmitted in a channel is 00000001 00000010 00000011. As the receiving end cannot determine the start bit of the character, the received data may be wrong data, which is 00000010 00000100 00000110 (i.e., 2, 4, 6) or 00000100 00001000 00001100 (i.e., 4, 8, 12), etc. In order to avoid this issue, the common practice is to use a special flag bit to identify the start bit of the character (for example, in a UART protocol, a start bit and an end bit are added to identify the start and end of the character), but the disadvantage of this practice is that an additional flag bit is needed to be transmitted, which causes that the transmission efficiency becomes low.